package com.bosssoft.trainee.nontax.service;

import com.bosssoft.trainee.nontax.entity.dto.PermissionDto;
import com.bosssoft.trainee.nontax.entity.vo.PermissionVo;

import java.util.List;
import java.util.Map;

/**
 * (Permission)表服务接口
 * @Author: Luo WenLong
 * @since 2022-06-12 10:16:13
 */
public interface PermissionService {

    /**
     * @Description: 获取页面的权限
     * @param pageName 页面名称
     * @return: java.util.Map<java.lang.String,java.util.List<java.lang.String>>
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:20
     */
    Map<String, List<String>> getPermissionByPageName(String pageName);

    /**
     * @Description: 获取async router的权限
     * @return: java.util.Map<java.lang.String,java.util.List<java.lang.String>>
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:20
     */
    Map<String, List<String>> getAsyncRouterPermission();

    /**
     * @Description: 通过ID查询单条数据
     * @param permissionId 主键
     * @return 实例对象
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:20
     */
    PermissionVo queryById(Integer permissionId);

    /**
     * @Description: 新增数据
     * @param permission 实例对象
     * @return 实例对象
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:20
     */
    PermissionVo insert(PermissionDto permission);

    /**
     * @Description: 修改数据
     * @param permission 实例对象
     * @return 实例对象
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:20
     */
    PermissionVo update(PermissionDto permission);

    /**
     * @Description: 通过主键删除数据
     * @param permissionId 主键
     * @return 是否成功
     * @Author: Luo WenLong
     * @Date: 2022/6/26 13:20
     */
    boolean deleteById(Integer permissionId);

}
